home *** CD-ROM | disk | FTP | other *** search
-
- LINUX PLIP MINI-HOWTO
-
- Last Update: 22/07/1996 (dd/mm/yyyy date format)
- Copyright: 1996 by Andrea Controzzi <controzz@cli.di.unipi.it>
- See the copyright message below.
-
- This HOWTO will hopefully let you build and use a Parallel Line Interface
- Protocol.
-
- NOTE: this is the second release. There are many changes and lots of
- enhancements, but there will be surely grammar and spelling errors
- (english is not my native language) and, unlikely but possible, some
- wrong or outdated info. PLEASE let me know about any errors to help me
- provide the correct information for everybody.
-
- For any question, error correction, comment and/or suggestion, my E-Mail
- address is: controzz@cli.di.unipi.it. Feel free to mail me any time you
- need help. Sometimes I won't answer immediately, but I'll answer. If it
- happens that you don't receive anything from me after 2 weeks, this means
- that our mail system has trouble: do not hesitate to mail me again, it's
- my duty to help you.
-
- First of all, a lot of technical information come from the net-2-HOWTO, by
- Terry Dawson. This mini-HOWTO is not supposed to cover other aspects and/or
- replace the net-2-HOWTO: my goal is to give you a way to install a PLIP
- permanent connection quickly, *ONLY* this. All the other info come from
- my personal experience and the help of many users that sent me comments
- and information.
-
- Read the net-2-HOWTO and the other docs for the general information about
- the network and the config files I suggest to change.
-
- The following is the index of the contents; you can quickly find the right
- paragraph searching for the string __nn__ where nn is the paragraph number.
-
- INDEX
- =====
-
- 0) Introduction: what is PLIP and why should I use it?
- 1) Hardware required to use PLIP.
- 2) Reconfigure the kernel.
- 3) Setting up the configuration files.
- 4) Activate the PLIP link.
- 5) Kernel messages at boot time.
- 6) FAQ.
- 7) A quick PLIP installation.
- 8) Patches to make PLIP and LP live together.
- 9) A PLIP LINK BETWEEN DOS AND LINUX
- 10) Questions? Comments? Send me feedback.
- 11) Where to find new releases of this mini-howto.
- 12) Credits.
- 13) Copyright message.
-
-
- __0__ INTRODUCTION: WHAT IS PLIP AND WHY SHOULD I USE IT?
-
- There are many ways to create a connection between multiple hosts. PLIP,
- like SLIP, allow a local connection between two machines via the parallel
- ports.
-
- A PLIP connection is very similar to the SLIP (with a leased cable) one,
- but uses parallel ports instead of the serial ports. Parallel ports
- transfer more than one bit at a time, this means it is possible to
- achieve higher speeds than with a serial interface.
-
- The PLIP interface is fast enough to allow some decent tcp/ip functions,
- like NFS. So, you may have a computer with all your Linux stuff and
- another with only the minimal system, where you can mount all the rest
- from the main machine.
-
- The disadvantage is that most users have only one parallel port, this
- means that you won't be able to print and use PLIP together. Until the
- last kernels, even with two or more parallel ports, using PLIP and the
- printer was impossible without using the kernel modules or other tricks.
-
- This disvantage can be also eliminated, if you have two or more parallel
- ports, applying a patch. Please see below in the "Patches to make PLIP and
- LP live together".
-
- Finally I am now able to give a hopefully good way to set up a PLIP link
- between DOS and Linux.
-
- __1__ HARDWARE REQUIRED TO USE PLIP
-
- The hardware required to set up a PLIP interface is (obviously) a free
- parallel port in both the machines and the cable.
-
- About the cable, this is what is written in the plip.c file, in the kernel
- 1.2.13 source:
-
- The cable used is a de facto standard parallel null cable -- sold as
- a "LapLink" cable by various places. You'll need a 12-conductor cable to
- make one yourself. The wiring is:
- SLCTIN 17 - 17
- GROUND 25 - 25
- D0->ERROR 2 - 15 15 - 2
- D1->SLCT 3 - 13 13 - 3
- D2->PAPOUT 4 - 12 12 - 4
- D3->ACK 5 - 10 10 - 5
- D4->BUSY 6 - 11 11 - 6
- Do not connect the other pins. They are
- D5,D6,D7 are 7,8,9
- STROBE is 1, FEED is 14, INIT is 16
- extra grounds are 18,19,20,21,22,23,24
-
- But I strongly advice you to read the /usr/src/linux/drivers/net/README1.PLIP
- file for more info about the cable.
-
- In my opinion you should avoid building your own parallel null cable. A
- self-made cable may save very little money, but can add lots of headaches.
- If you wish to build your parallel cable, remember that you're doing it at
- your own risk, I reported exactly what is written in plip.c but I don't give
- warranties.
-
- A final word about cable length: long cables (i.e. more than 10 feet or
- 3 meters) may bring problems due to radio interference. If you need long
- cables you should use good and well shielded cables, but very long cables
- are not recommended: I think the maximal cable lenght should be 15 meters
- (50 feet).
-
- Anyway, someone mailed me that his/her 100 foot (30 meters) cable works
- fine; if someone really wants to try a PLIP connection between the
- office and his home (200 meters away), and has the money to spend, then
- simply try it: in the worst case it just won't work!
-
- __2__ RECONFIGURE THE KERNEL
-
- You're supposed to already know how to configure and compile the kernel,
- otherwise you must get some doc (kernel-howto or other guides). Thanks to
- the cool work made by the kernel guys, recompiling the last kernels is a
- really easy jobs also for "common" people, so just do it. Anyway, for the
- sake of completeness, here is a quick summary of what you must do:
-
- NOTE: I suppose you are using the 2.0.xx kernel series. Now there is
- no need to keep the 1.2.xx kernels.
-
- I will suppose that you use menuconfig to set up the kernel options, but
- the other tools are equivalent. I'll show how to do it with menuconfig:
-
- #make menuconfig
-
- I strongly advice to select
-
- Loadable module support --->
-
- and enable the
-
- [*] Enable loadable module support
-
- and, if possible (i.e. you have modules.2.0.0) the
-
- [*] Kernel daemon support (e.g. autoload of modules)
-
- Then go back and choose
-
- Networking options --->
-
- where you should choose at least
-
- [*] Network firewalls
- [*] TCP/IP networking
- [*] IP: forwarding/gatewaying
-
- The go back and choose at least
-
- [*] Network device support
- <M> PLIP (parallel port) support
-
- If you use modules I definitely advice you to set up PLIP as a module. If
- you do so you can also, if you need to use a printer, go to
-
- Character devices --->
-
- and set up as a module the
-
- <M> Parallel printer support
-
- Now you have enabled the kernel support for PLIP. If it's the first time
- that you compile the kernel look at all the other options then save and
- exit.
-
- Finally compile with
-
- #make dep ; make clean
- #make zlilo
-
- And, if you use modules
-
- # make modules
- # make modules_install
-
- __3__ SETTING UP THE CONFIGURATION FILES
-
- First of all remember to backup all the files you will change,
-
- #cp rc.inet1 rc.inet1.BACKUP
-
- may be a good idea.
-
- Now, if you don't have it done already, you must choose the IP addresses
- of the two machines. In my examples I'll use a couple of example IPs for
- the IPs that you'll write, in the standard xxx.xxx.xxx.xxx format.
-
- In the /etc/rc.d/inet1.rc file of both the machines add this (better if in
- the last part of the file):
-
- /sbin/route add -net ${NETWORK} netmask ${NETMASK}
-
- Where NETWORK and NETMASK should be set up previously. If you don't know how
- to do it, please read the NET-2-HOWTO.
-
- You may safely ignore these variables only in the following case:
-
- If you only want to connect two machines on a standalone network, you may
- pick-up any IP address, say 200.0.0.1 and 200.0.0.2 respectively.
- In this case you can safely put NETWORK="200.0.0.0" and NETMASK="255.255.255
- .0". These are the example IPs that I use in my Quick PLIP Installation (see
- below).
-
-
- NOTE: 200.0.0.1 and 2 are only example IPs, I advice not to use these
- numbers definitively because they could be the addresses of real
- hosts on Internet!
-
- I strongly advice to choose your address between the "private address"
- intervals:
-
- 10.0.0.0 - 10.255.255.255
- 172.16.0.0 - 172.31.255.255
- 192.168.0.0 - 192.168.255.255
-
- In the file /etc/hosts of both the machines you should add the entries with
- the IP of the machines that you connect via PLIP. In my example, the entries
- are:
-
- 200.0.0.1 one # this is the "one" IP address
- 200.0.0.2 two # this is the "two" IP address
-
- Where one and two are the names you have chosen for the two hosts.
-
- If you want to activate the NFS, beside answering yes during the kernel
- configuration, you must add in /etc/exports the entries that describe the
- directories that you wish to export. In my example, to be able to mount
- the directory /usr, you should add this entry:
-
- /usr two (ro)
-
-
- __4__ ACTIVATE THE PLIP LINK
-
- Finally, these are the commands, that must be executed with root rights,
- that activate the PLIP interface (of course the cable must be already plugged
- correctly).
-
- First of all confirm that there is no lp device present:
-
- #cat /proc/devices
-
- You mustn't see any reference to lp like this:
-
- 6 lp
-
- Again I use the name one and two, as example. On "one" you must type:
-
- #ifconfig plip1 one pointopoint two up
-
- Check that it worked...
-
- #ifconfig
-
-
-
- .....
- .....
- plip1 Link encap:10Mbps Ethernet HWaddr FC:FC:C8:00:00:01
- inet addr:200.0.0.1 P-t-P:200.0.0.2 Mask:255.255.255.0
- UP POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0
- TX packets:0 errors:0 dropped:0 overruns:0
- Interrupt:7 Base address:0x378
-
- NOTE: if you use modules without the kerneld daemon (that autoloads the
- proper modules on demand) remember to
-
- #insmod plip
-
- before the ifconfig. If you are paranoic check that the module has been
- loaded with:
-
- #lsmod
-
- Module: #pages: Used by:
- plip 3 0
-
- Add the route to two...
-
- #route add two
-
- And, if you want also the NFS for two:
-
- #rpc.portmap
- #rpc.mountd
- #rpc.nfsd
-
- On "two" the commands are the same, but you must write one instead of two
- and vice versa.
-
- One of your machines is likely to have only the PLIP connection, if this is
- true, you may also type:
-
- #route add default gw one
-
- on that machine. In my example above, two is a laptop with only a PLIP
- connection with one, so I type the above line on two.
-
- Finally check with a
-
- #ping two
-
- from one and a
-
- #ping one
-
- from two to see that all is working.
-
- Of course you may want to have all these commands automatically done by a
- script or at boot time. You must only create a script that execute these
- commands: now you may invoke it as root when you need, or you may add a
- command (in /etc/rc.d/rc.inet2) that calls it at boot time. If you want to
- use my Quick PLIP Installation, you will find all the config files and the
- script. NOTE: this file may be outdated...sorry.
-
- __5__ KERNEL MESSAGES AT BOOT TIME
-
- After you've reconfigured and compiled the kernel with PLIP support enabled,
- examine the messages with the dmesg (8) command.
-
- You should get something like this:
-
- NET3 PLIP version 2.0 gniibe@mri.co.jp
- plip1: Parallel port at 0x378, using assigned IRQ 7.
-
- Of course if you're using modules you'll see this message when you (or
- the kerneld daemon) insmods the plip.o module. Depending upon your
- klogd and syslogd configuration the plip message could have been stored
- in your system log files: don't panic if you don't see the above message.
- If lsmod shows that the plip module is loaded, then it's enough.
-
- __6__ FAQ
-
- This section will (hopefully) solve your problems. If you have any other
- question, feel free to mail me anytime.
-
- The question is listed with a =, the answer(s) with a -
-
- = I get these messages at boot time:
- SIOCSIFADDR: No such device
- SIOCADDRT: Network is unreachable
- and when I try to set up the link as written above, I get again error
- messages like:
- SIOCSIFADDR: No such device
- SIOCSIFDSTADDR: No such device
- SIOCADDRT: Network is unreachable
- mount clntudp_create: RPC: Port Mapper failure - RPC: Unable to send
- - The kernel, for some reason, hasn't PLIP support enabled. This could be
- due to:
- . You didn't answer yes to "PLIP support? " during kernel configuration.
- . You answered yes to "Printer support? " during kernel configuration.
- . You compiled PLIP as a module, so you must load it.
-
- = Is there a way to support both PLIP and LP, beside modules, perhaps with
- two parallel ports?
- - Yes, so far there are two ways, described in the "Patches to make PLIP
- and LP live together":
- . You can apply a patch to make the kernel support both.
- . You can apply another patch to make the kernel use a parallel port
- for PLIP and another for LP.
-
- = I have created the script that connects my 2 computers. I set up the
- link automatically in my rc.inet2, where I call a script that creates
- the link and enables VFS.
- My "two" hosts mounts some "one"'s directories; I have added the
- correct entries in "two"'s /etc/fstab.
- If I boot "two" when "one" is down, "two" halts for some minutes
- on the "mounting remote file systems...".
- - This happens because "two" waits to mount the "one" filesystems, but
- if "one" is down you must wait until "two" is bored of waiting.
- To avoid this, you may:
- . Comment out in rc.inet2 the command that mounts the remote filesystems
- . Remove the entry in "two"'s /etc/fstab and mount the remote filesystems
- manually when and if you need.
-
- = My link is up, but ping fails. I receive the following message from the
- kernel: plip1: timed out (1, 89)
- - This means that the "your side of the link" is working, your machine
- sends the signal, but the "other side" isn't answering for the following
- reasons:
- . The cable isn't plugged properly or is broken or is wrong.
- . The "other side" machine has not PLIP up.
- . You are linked with a notebook with a not proper parallel port, see
- next question.
-
- = I have installed the PLIP connection but if I ping I get 100% data loss.
- I connected my desktop with a notebook.
- - Some notebook's parallel ports aren't good for PLIP, because they are
- only "printer ports", i.e. they can only transmit but not receive the
- data. So far I don't know if there is a way to make them work.
- The only hope is:
- . Look at your notebook setup, perhaps there is a way to configure
- the parallel port as a parallel port instead of a printer port.
- . Try plip mode 0. Alas I don't know how to do it and/or if it works
- or is still available in the last kernels.
-
- = What speeds can I achieve with PLIP?
- - This is an hard question to answer to, because there are MANY factors
- that can change deeply your performance:
- . The CPU speed on both the sides of the link.
- . The parallel port type and settings.
- . The system load.
- . What do you use PLIP for.
- Just to give a rough idea, you should achieve about 40Kbytes/sec, much
- faster than any serial rate and near to a low-level ethernet card.
-
- = What happens if I need to ifconfig up and ifconfig down many times plip1?
- - Seems that you need to add a -arp to the ifconfig command, except for
- the first time after each boot. I don't need, but perhaps someone does.
-
- = I have read the IP numbers reserved for private networks and your 200.0.0.1
- and 200.0.0.2 are not in these ranges. Shouldn't they be changed?
- - Yes, they should. But as I underline since the beginning I choose these
- IP addresses only because of their simplicity, you are free to change
- them as you wish. Here is a cut from the net-2-howto:
-
- RFC1597 has specifically reserved some IP addresses for private
- networks. You should use these as they prevent anything nasty
- happening if you accidentally get connected to the Internet. The
- addresses reserved are:
-
- 10.0.0.0 - 10.255.255.255
- 172.16.0.0 - 172.31.255.255
- 192.168.0.0 - 192.168.255.255
-
- = Is there a way to fine tune PLIP parameters without editing the source
- code?
- - Yes, there is! Try the /sbin/plipconfig command. See the man page for more
- info.
-
- = I'm running Debian GNU/Linux, and under Debian, the files /etc/rc.d/rc.inet1
- and 2 do not exist. Where must I write the plip configuration commands?
- - In Debian GNU/Linux you must edit /etc/init.d/network, where you have to
- put all the commands that should stay in rc.inet1 and 2.
-
- = I have some problems linking two hosts with PLIP. The first has the latest
- kernel, the second still uses the 1.0.x PLIP version: is this a problem?
- - Yes, it's much better, where is possible, to have the same PLIP version on
- both ends.
-
- = PLIP support in some 1.3.x kernel doesn't work. What happens?
- - Remember that 1.oddnumber.x kernels are under development: the "gods"
- that work hard every day to make linux better than the day before
- sometimes fail to give us "mortals" stable kernels. Right now a kernel
- 2.0.xx release should be stable.
-
- __7__ A QUICK PLIP INSTALLATION
-
- Before doing this mini-HOWTO, I created a quick PLIP installation set of
- files. In few minutes, beside compiling the kernel, you should be able to
- set up a PLIP interface. The tarred and gzipped set of files may be found
- on my Home Page, at
-
- http://www.cli.di.unipi.it/~controzz/intro.html
-
- Perhaps someone will let my files available at some ftp site.
-
- __8__ PATCHES TO MAKE PLIP AND LP LIVE TOGETHER
-
- The best way to make PLIP and LP live together is to use kernel modules: you
- can load plip.o and unload it when you need to print or vice versa.
- If you do really need to use both PLIP and LP, try the following patches.
-
- _8.1_ PLIP AND LP TOGETHER ON THE SAME PORT
- If for some reason you wish PLIP and LP supported directly by the kernel,
- you can try these patches.
-
- You must modify the following pieces of code, but *backup* the files
- before:
-
- --- begin ---
-
- ******** modifications to linux/drivers/char/lp.c ***********************
- struct lp_struct lp_table[] = {
- { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
- NULL, },
- /* { 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
- NULL, },
- { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL,
- NULL, },
- */
- };
- #define LP_NO 1
-
- ******** modifications to linux/drivers/net/Space.c ********************
- #if defined(PLIP) || defined(CONFIG_PLIP)
- extern int plip_init(struct device *);
- static struct device plip2_dev = {
- "plip2", 0, 0, 0, 0, 0x278, 2, 0, 0, 0, NEXT_DEV, plip_init, };
- static struct device plip1_dev = {
- "plip1", 0, 0, 0, 0, 0x378, 7, 0, 0, 0, &plip2_dev, plip_init, };
- /* static struct device plip0_dev = {
- "plip0", 0, 0, 0, 0, 0x3BC, 5, 0, 0, 0, &plip1_dev, plip_init, };
- */
- # undef NEXT_DEV
- # define NEXT_DEV (&plip1_dev)
- #endif /* PLIP */
-
- ---end---
-
- Of course there is the standard disclaimer: I received these patches and
- I put them "as I got them". This means that you try them at your own risk.
- Anyway, your biggest trouble should be only restore the original files and
- recompile.
-
- _8.2_ PLIP AND LP ON DIFFERENT PORTS
- If you have at least 2 parallel ports you can try these patches, that
- should allow you to use PLIP on a port and LP on the other.
-
- --- begin ---
-
- 1. Comment out one line in kernel source file, drivers/char/lp.c.
-
- struct lp_struct lp_table[] = {
- { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
- { 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
- /* { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, }, */
- };
- 3 -> 2
-
- 2. Kernel configuration
-
- PLIP (parallel port) support (CONFIG_PLIP) [n] y
-
- Parallel Printer support [y] y
-
- 3. Kernel message at startup
-
- lp1 at 0x0378, using polling driver
- .....
- NET3 PLIP version 2.0 gniibe@mri.co.jp
- plip2: Parallel port at 0x278, using assigned IRQ 5.
-
- ---end---
-
- Again the standard disclaimer, like section 8.1.
-
-
- __9__ A PLIP LINK BETWEEN DOS AND LINUX
-
- After the first release of this Mini-HowTo many people wrote for info about
- a link between Linux and DOS (or Windows) computer. The general interest
- lead me to add this chapter, I hope will be of help to everybody.
-
- This section comes from an article I've found on Linux Gazzette by James
- McDuffie <mcduffie@scsn.net> . It covers the basic installation of a PLIP
- link between Linux and a DOS computer using Windows and Trumpet WinSock
- and gives the address of a cool program that let's you run X-Windows
- programs on Windows.
-
- The next section is an addendum sent by James Vahn <jvahn@short.circuit.com>
- where he describes deeply how to set up this link and how to solve many
- problems.
-
- I suppose you have already set up properly the PLIP support on the Linux
- side and you have got the right cable, else go back to the previous chapters.
-
- Now, for the DOS side, you need first of all a packet driver. It can be
- found here:
-
- ftp://ftp.crynwr.com/drivers/plip.zip
-
- The program runs under DOS and acts like a Ethernet Packet driver.
- If you want to use PLIP with Windows you need also Trumpet Winsock. This
- serves as the TCP/IP interface. Otherwise, you can probably find TCP/IP
- software for DOS.
-
- Now go back to the Linux computer and add the DOS computer address to
- /etc/hosts. If your DOS computer does not have a registered IP address
- you may choose any address (remember the warning of chapter 3 about IP
- addresses).
-
- Now let's suppose you chose the name linux for the Linux computer and dos
- for the DOS one. You have to type:
-
- ifconfig plip1 linux pointopoint dos arp up
- route add dos
-
- Of course if you want to have this done every time you boot the linux
- computer you may add these lines to the file /etc/rc.d/rc.inet1:
-
- /sbin/ifconfig plip1 linux pointopoint dos arp up
- /sbin/route add dos
-
- This sets up the interface and then adds a route to it. Of course if you
- are using the second parallel port you have to write plip2 instead.
-
- Go back to the DOS/Windows computer and edit autoexec.bat, you have to
- add the following lines.
-
- c:\plip\plip.com 0x60
- c:\tcpip\winsock\winpkt.com 0x60
-
- Of course I suppose you put plip.com (the packet driver) in the directory
- c:/plip and the winpkt.com in c:/tcpip, else you need to put the right path.
-
- This sets the plip.com program on packet vector 0x60 and then loads the
- winpkt.com program that comes with trumpet winsock on the same vector.
- If the cable is something other than lpt1 you will have to tell plip.com
- the irq number and io address. Also, winpkt.com needs to run to make the
- packet vector avaliable to Windows. From here we go to the actual setup
- under Trumpet Winsock. All you have to do is unselect SLIP or PPP and
- enter 60 into the box labeled Packet vector. Then tell it the IP address
- you gave it, the IP address of the Linux computer as the default gateway
- and the Name Server as either you computer's ip or your ISP's address
- for its nameservers if your going to connect it to the Internet (more on
- this later). Close the setup and re-run Winsock and you should have it!
- Put winsock in your startup group and you have everything setup automatically!
-
- If you want to access the Internet through the Linux computer on the Windows
- computer you will need to set up IP Masquerading, for info on this see the
- NET-2-HOWTO. This simply masquerades the Windows computer with your Linux
- computer's IP address.
-
- Also I have found a program that lets you run X-Windows programs under
- Windows! It is located at:
-
- http://www.tucows.com/
-
- Set it up according to directions and then all you have to do is telnet
- in from the Windows computer then set the display to the Windows computer
- (`DISPLAY=duncan:0.0` for instance) and run the program desired.
- There is nothing cooler than running xv under Windows! Hope all this helped.
-
- _9.1_ A DOS-LINUX PLIP LINK EXPERIENCE.
-
- NOTE: I received this document from James Vahn <jvahn@short.circuit.com> and
- I put it here unchanged. This means that for any question about this section
- he's much better qualified than me so please mail to him before to me.
- His experience with a PLIP connection of a floppy-only DOS computer to a
- Linux one is the perfect example of how to work-around common problems.
-
- Last Update 11/07/1996 (dd/mm/yyyy format)
- addendum from <jvahn@short.circuit.com>
-
- My floppy-only DOS box is networked via PLIP to the second printer port on
- the Linux machine. The first Linux printer port has a printer on it, both are
- permanently connected and the DOS box is telnet'd into Linux. These are my
- notes on what I did to accomplish this.
-
- When the kernel probes for printer ports, it will grab all of them unless you
- remove one from the probe. Otherwise PLIP will get nothing. One method is to
- load the drivers as modules when needed...
-
- <gniibe@mri.co.jp> writes:
- =========================
- I keep recommending using PLIP/LP as kernel module, since
-
- * modules are flexible for change of configuration
- * (re)compiling the kernel is not easy for novice users
- * co-existing PLIP and LP is only feasible by the modules
-
- With PLIP/LP as kernel module, you can specify which port is PLIP and
- which port is LP. Here is example:
-
- # insmod lp.o io=0x378
- # insmod plip.o io=0x278 irq=2
-
- Even you can use two parallel ports:
-
- # insmod plip.o io=0x278,0x3bc irq=2,5
-
- In the example above,
- plip0 is assigned on 0x278 and it's irq is 2,
- plip1 is assigned on 0x3bc and it's irq is 5, respectively.
-
- =========================
-
- Using modules certainly sounds like the way to go. The following method shows
- how to patch the kernel to allow both a printer and PLIP on different ports,
- without modules. If you are unfamiliar with the module concept, you might
- find this quicker to set up.
-
- You will need to modify two files in the kernel source tree. I'm using kernel
- 1.2.13 and found some changes were needed in ../linux/drivers/net/Space.c to
- accommodate my system. Look at around line 205 for the PLIP definitions to
- make sure your port and IRQ match, and make a note of which driver it will be
- (plip0, plip1, plip2). In my case port 0x278 uses IRQ 5 (the card is jumpered
- that way) but Space.c defined it with IRQ 2. I made the changes here, rather
- than opening up the box and changing jumpers. The alternative is to specify
- the IRQ through ifconfig later on, but the kernel will boot up with the wrong
- IRQ for PLIP and it may annoy you. It is a simple (single character) change.
-
- The next, and more difficult step--
- In .../drivers/char/lp.c you will find the following at around line 38:
-
- struct lp_struct lp_table[] = {
- { 0x3bc, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
- { 0x378, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
- /* { 0x278, 0, 0, LP_INIT_CHAR, LP_INIT_TIME, LP_INIT_WAIT, NULL, NULL, },
- * 0x278 reserved for plip1
- *
- * };
- * #define LP_NO 3
- */
- };
- #define LP_NO 2
-
- Notice the changes to make- one port is commented out, so now only 2 ports
- are defined. Port 0x3BC will probably not work for PLIP- the IRQ line is
- usually broken on these ports, as found on old monochrome adapters (MDA).
-
- You made backups of these file before you changed them, right? Now make a
- new kernel with printer, net, dummy, and plip support.
-
- Configure the system. This is my /etc/rc.d/rc.inet1 file:
-
- #!/bin/bash
- #
- /sbin/ifconfig lo 127.0.0.1
- /sbin/route add -net 127.0.0.0
-
- /sbin/ifconfig dummy 200.0.0.1
- /sbin/route add -net 200.0.0.0 netmask 255.255.255.0
- /sbin/ifconfig plip1 arp 200.0.0.1 pointopoint 200.0.0.2 up
- /sbin/route add 200.0.0.2
- /sbin/ifconfig dummy down
-
- Notice that arp is used for the DOS-to-Linux connection, apparently not used
- on Linux-to-Linux connections.
-
- And in /etc/hosts you can add these, just to give the two machines names:
-
- 200.0.0.1 console1
- 200.0.0.2 console2
-
- The DOS box is console2. Note Andrea's warning about these, better to use
- official numbering schemes.
-
- Reboot so all of these changes and the new kernel will take effect. During
- the boot sequence (or by running dmesg) if you made the patches, otherwise
- when the modules are loaded:
-
- lp0 at 0x03bc, using polling driver
- lp1 at 0x0378, using polling driver
- [....]
- NET3 PLIP version 2.0 gniibe@mri.co.jp
- plip1: Parallel port at 0x278, using assigned IRQ 5.
-
- The "route" command shows this:
-
- Kernel routing table
- Destination Gateway Genmask Flags MSS Window Use Iface
- console2 * 255.255.255.255 UH 1436 0 136 plip1
- loopback * 255.0.0.0 U 1936 0 109 lo
-
- And "ifconfig plip1" shows:
-
- plip1 Link encap:10Mbps Ethernet HWaddr FC:FC:C8:00:00:01
- inet addr:200.0.0.1 P-t-P:200.0.0.2 Mask:255.255.255.0
- UP POINTOPOINT RUNNING MTU:1500 Metric:1
- RX packets:132 errors:0 dropped:0 overruns:0
- TX packets:136 errors:0 dropped:0 overruns:0
- Interrupt:5 Base address:0x278
-
- Look at /etc/inetd.conf and see if telnet is enabled. You might want to read
- the man page for tcpd, and the use of /etc/hosts.allow (ALL: LOCAL) and
- /etc/hosts.deny (ALL: ALL). You should be able to "telnet localhost".
-
- Linux is done, now the DOS side. Again, be suspicious of port 0x3BC if one is
- present.
-
- I'm using NCSA's telnet and Crynwr's PLIP driver found at these sites:
- ftp://ftp.ncsa.uiuc.edu/Telnet/DOS/ncsa/tel2308b.zip
- ftp://ftp.crynwr.com/drivers/plip.zip
-
- Be sure to use NCSA's version 2.3.08 telnet and version 11.1 of Crynwr's
- PLIP driver. Please find and read Crynwr's SUPPORT.DOC located elswhere.
-
- The CONFIG.TEL file. Most of it is the default and to save some space
- I've tried to cut it back here to just the info you need (hopefully). The
- second port on this machine is setup as 0x278 on IRQ 5.
-
- myip=200.0.0.2
- netmask=255.255.255.0 # subnetting mask
- hardware=packet # network adapter board (packet driver interface)
- interrupt=5 # IRQ which adapter is set to
- ioaddr=60 # software interrupt vector driver is using
- #
- #[...lots unchanged...]
- #
- # at the end of the file, put this line:
- name=console1 ; hostip=200.0.0.1 ; nameserver=1 ; gateway=1
-
- (console1 is the name of the Linux machine, you can use whatever you like)
-
- I made a 12 foot null cable between both machines, and (after initially
- finding it miswired) there have been no problems. A standard 11-wire null
- printer cable should work too. The Linux plip.c source shows the wiring.
- Although my cable has the 17-17 connection, I don't think it is used for
- anything and was not present on a ready-made cable.
-
- @echo off
- plip.com 0x60 5 0x278
- telbin -s console1
-
- That should connect you to the Linux box on /dev/ttyp. NCSA's telnet
- provides for 8 virtual screens and also acts as an ftp server. The PLIP
- interface provides a fair throughput, I'm getting 6.5K/s file transfers
- with my antiques. Let's hope you can do better. :-)
-
- __10__ QUESTIONS? COMMENTS? SEND ME FEEDBACK
-
- For any questions and comments you can find me via e-mail at the address
- controzz@cli.di.unipi.it
-
- Feedback is welcome, any error report is precious.
- The next release should have a larger FAQ section, if you send questions.
-
- __11__ WHERE TO FIND NEW RELEASES OF THIS MINI-HOWTO
-
- This mini-HOWTO is maintained by the HOWTO coordinators and is posted
- monthly on comp.os.linux.answers and can be found in the HOWTO directory
- at sunsite and at sunsite's mirrors.
-
- Another way to find the mini-HOWTO (and to contact me) is on my Home Page,
-
- http://www.cli.di.unipi.it/~controzz/intro.html
-
- __12__ CREDITS.
-
- Many thanks to:
-
- o Rick Lim <ricklim@freenet.vancouver.bc.ca> for the patches to make PLIP
- and LP live together.
-
- o Takeshi Okazaki <GBA03552@niftyserve.or.jp> for the patches to use PLIP
- and LP on two different parallel ports.
-
- o Jim Van Zandt <jrv@vanzandt.mv.com> for some advice on the "tutorial" part
- of this HOWTO.
-
- o James Vahn <jvahn@short.circuit.com> for the cool addendum on the PLIP
- between DOS and Linux chapter.
-
- o To all the ones that posted PLIP-related articles on the linux newsgroups
- and/or mailed me. The list of all the people that helped me with info
- and comments could be longer than the Mini-HOWTO itself: thank you all!
-
- __13__ COPYRIGHT MESSAGE
-
- Unless otherwise stated, Linux HOWTO documents are copyrighted by
- their respective authors. Linux HOWTO documents may be reproduced and
- distributed in whole or in part, in any medium physical or electronic,
- as long as this copyright notice is retained on all copies. Commercial
- redistribution is allowed and encouraged; however, the author would
- like to be notified of any such distributions.
-
- All translations, derivative works, or aggregate works incorporating
- any Linux HOWTO documents must be covered under this copyright notice.
- That is, you may not produce a derivative work from a HOWTO and impose
- additional restrictions on its distribution. Exceptions to these rules
- may be granted under certain conditions; please contact the Linux
- HOWTO coordinator at the address given below.
-
- In short, we wish to promote dissemination of this information through
- as many channels as possible. However, we do wish to retain copyright
- on the HOWTO documents, and would like to be notified of any plans to
- redistribute the HOWTOs.
-
- If you have questions, please contact Greg Hankins, the Linux HOWTO
- coordinator, at gregh@sunsite.unc.edu via email.
-
-